popover: Stop using ::set-focus
authorMatthias Clasen <mclasen@redhat.com>
Sun, 3 Mar 2019 13:10:14 +0000 (08:10 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 17 Mar 2019 01:24:44 +0000 (21:24 -0400)
This will change completely when GtkPopover becomes a
root. For now, stop using ::set-focus and just use the
focus-widget property.

gtk/gtkpopover.c

index cfd697a234fbf26b5ab5defd1f766230644f8f06..c77ddc3f2524a225e0a5448b2c3cdb6e2e710a79 100644 (file)
@@ -614,10 +614,11 @@ window_active_changed (GtkWindow  *window,
 
 static void
 window_set_focus (GtkWindow  *window,
-                  GtkWidget  *widget,
+                  GParamSpec *pspec,
                   GtkPopover *popover)
 {
   GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
+  GtkWidget *widget = gtk_root_get_focus (GTK_ROOT (window));
 
   if (!priv->modal || !widget || !gtk_widget_is_drawable (GTK_WIDGET (popover)))
     return;
@@ -673,7 +674,7 @@ gtk_popover_apply_modality (GtkPopover *popover,
 
       g_signal_connect (priv->window, "notify::is-active",
                         G_CALLBACK (window_active_changed), popover);
-      g_signal_connect (priv->window, "set-focus",
+      g_signal_connect (priv->window, "notify::focus-widget",
                         G_CALLBACK (window_set_focus), popover);
     }
   else